SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.vwlEnQueMeInscribo
AS
/*
SELECT DISTINCT 
                      TOP 100 PERCENT dbo.tb_AnexoTitulos.IdAnexoTitulo AS Id, dbo.tb_CargosGenericos.Descripcion AS Cargo, 
                      dbo.vwrAsignaturasGenericas.Descripcion AS AsignaturaGenerica, dbo.vwrCategoriasDeTitulo.Descripcion AS Categoria, 
                      SUBSTRING(dbo.vwrTitulos.Descripcion, 10, 255) + ' - ' + CAST(dbo.vwrTitulos.ID AS varchar(8)) AS Titulo, vwrTitulos_2.Descripcion AS Titulo2, 
                      vwrTitulos_1.Descripcion AS Titulo1, SUBSTRING(dbo.vwrAsignaturasGenericas.Descripcion, 9, 100) 
                      + ' - ' + CAST(dbo.vwrAsignaturasGenericas.ID AS varchar(8)) AS Asignatura, SUBSTRING(dbo.tb_CargosGenericos.Descripcion, 9, 100) 
                      + ' - ' + CAST(dbo.tb_CargosGenericos.idCargoGenerico AS varchar(8)) AS CargoSolo, dbo.tb_TitulosDelAgente.Agente, 
                      dbo.tb_AnexoTitulos.Categoria AS IdCategoria, dbo.vwrLocalidades.ID AS Localidad, dbo.vwrLocalidades.Descripcion, 
                      dbo.tb_PosiblesVacantes.Convocatoria, dbo.tb_CargosGenericos.idCargoGenerico, dbo.tb_AnexoTitulos.AsignaturaGenerica AS idAsignatura
FROM         dbo.vwrTitulos INNER JOIN
                      dbo.tb_AnexoTitulos ON dbo.vwrTitulos.ID = dbo.tb_AnexoTitulos.Titulo3 INNER JOIN
                      dbo.vwrCategoriasDeTitulo ON dbo.tb_AnexoTitulos.Categoria = dbo.vwrCategoriasDeTitulo.ID INNER JOIN
                      dbo.vwrAsignaturasGenericas ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID INNER JOIN
                      dbo.tb_CargosGenericos ON dbo.tb_AnexoTitulos.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico INNER JOIN
                      dbo.tb_TitulosDelAgente ON dbo.tb_AnexoTitulos.Titulo3 = dbo.tb_TitulosDelAgente.Titulo INNER JOIN
                      dbo.tb_PosiblesVacantes ON dbo.tb_CargosGenericos.idCargoGenerico = dbo.tb_PosiblesVacantes.CargoGenerico AND 
                      dbo.vwrAsignaturasGenericas.ID = dbo.tb_PosiblesVacantes.AsignaturaGenerica INNER JOIN
                      dbo.vwrLocalidades ON dbo.tb_PosiblesVacantes.Localidad = dbo.vwrLocalidades.ID LEFT OUTER JOIN
                      dbo.vwrTitulos vwrTitulos_2 ON dbo.tb_AnexoTitulos.Titulo2 = vwrTitulos_2.ID LEFT OUTER JOIN
                      dbo.vwrTitulos vwrTitulos_1 ON dbo.tb_AnexoTitulos.Titulo1 = vwrTitulos_1.ID LEFT OUTER JOIN
                      dbo.tb_InscripcionesConvocatorias i ON i.Convocatoria = dbo.tb_PosiblesVacantes.Convocatoria AND 
                      i.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico AND i.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID AND 
                      i.Localidad = dbo.vwrLocalidades.ID AND i.Agente = dbo.tb_TitulosDelAgente.Agente
WHERE     (dbo.tb_AnexoTitulos.AsignaturaGenerica <> 0) AND (i.Agente IS NULL)
ORDER BY dbo.vwrCategoriasDeTitulo.Descripcion
*/

/*
--segunda versión
SELECT DISTINCT 
TOP 100 PERCENT dbo.tb_AnexoTitulos.IdAnexoTitulo AS Id, 
                dbo.tb_CargosGenericos.Descripcion AS Cargo, 
case  when tb_AnexoTitulos.Categoria = 1 then vwrAsignaturasGenericas2.Descripcion 
      when tb_AnexoTitulos.Categoria <>1 then dbo.vwrAsignaturasGenericas.Descripcion 
end AS AsignaturaGenerica , 
                dbo.vwrCategoriasDeTitulo.Descripcion AS Categoria, 
                  SUBSTRING(dbo.vwrTitulos.Descripcion, 10, 255) + ' - ' + 
                  CAST(dbo.vwrTitulos.ID AS varchar(8)) 
                AS Titulo, 
                vwrTitulos_2.Descripcion AS Titulo2, 
                vwrTitulos_1.Descripcion AS Titulo1, 
case  when tb_AnexoTitulos.Categoria = 1 
then               SUBSTRING(vwrAsignaturasGenericas2.Descripcion, 9, 100) 
                   + ' - ' + CAST(vwrAsignaturasGenericas2.ID AS varchar(8)) 
when tb_AnexoTitulos.Categoria <>1 then
                    SUBSTRING(dbo.vwrAsignaturasGenericas.Descripcion, 9, 100) 
                    + ' - ' + CAST(dbo.vwrAsignaturasGenericas.ID AS varchar(8)) 
end
AS Asignatura, 
                 SUBSTRING(dbo.tb_CargosGenericos.Descripcion, 9, 100) 
                 + ' - ' + CAST(dbo.tb_CargosGenericos.idCargoGenerico AS varchar(8)) 
                 AS CargoSolo, 
                 dbo.tb_TitulosDelAgente.Agente, 
                 dbo.tb_AnexoTitulos.Categoria AS IdCategoria, 
                 dbo.vwrLocalidades.ID AS Localidad, dbo.vwrLocalidades.Descripcion, 
                 dbo.tb_PosiblesVacantes.Convocatoria, 
                 dbo.tb_CargosGenericos.idCargoGenerico, dbo.tb_AnexoTitulos.AsignaturaGenerica AS idAsignatura
FROM         dbo.vwrTitulos 
INNER JOIN dbo.tb_AnexoTitulos ON dbo.vwrTitulos.ID = dbo.tb_AnexoTitulos.Titulo3 
INNER JOIN dbo.vwrCategoriasDeTitulo ON dbo.tb_AnexoTitulos.Categoria = dbo.vwrCategoriasDeTitulo.ID 
INNER JOIN dbo.vwrAsignaturasGenericas ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID 
left JOIN dbo.Tb_AsignatuasGenericasAfines ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.Tb_AsignatuasGenericasAfines.asignaturagenerica 
INNER JOIN dbo.vwrAsignaturasGenericas as vwrAsignaturasGenericas2 ON dbo.Tb_AsignatuasGenericasAfines.asignaturagenericaafin = vwrAsignaturasGenericas2.ID 
INNER JOIN dbo.tb_CargosGenericos ON dbo.tb_AnexoTitulos.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico 
INNER JOIN dbo.tb_TitulosDelAgente ON dbo.tb_AnexoTitulos.Titulo3 = dbo.tb_TitulosDelAgente.Titulo 
INNER JOIN dbo.tb_PosiblesVacantes ON dbo.tb_CargosGenericos.idCargoGenerico = dbo.tb_PosiblesVacantes.CargoGenerico AND dbo.vwrAsignaturasGenericas.ID = dbo.tb_PosiblesVacantes.AsignaturaGenerica 
INNER JOIN dbo.vwrLocalidades ON dbo.tb_PosiblesVacantes.Localidad = dbo.vwrLocalidades.ID 
LEFT OUTER JOIN dbo.vwrTitulos vwrTitulos_2 ON dbo.tb_AnexoTitulos.Titulo2 = vwrTitulos_2.ID 
LEFT OUTER JOIN dbo.vwrTitulos vwrTitulos_1 ON dbo.tb_AnexoTitulos.Titulo1 = vwrTitulos_1.ID 
LEFT OUTER JOIN dbo.tb_InscripcionesConvocatorias i ON i.Convocatoria = dbo.tb_PosiblesVacantes.Convocatoria AND i.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico AND i.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID AND i.Localidad = dbo.vwrLocalidades.ID AND i.Agente = dbo.tb_TitulosDelAgente.Agente
WHERE     (dbo.tb_AnexoTitulos.AsignaturaGenerica <> 0) AND (i.Agente IS NULL) and vwrTitulos_2.Descripcion is null
--and dbo.tb_TitulosDelAgente.Agente=57811 
--and dbo.tb_PosiblesVacantes.Convocatoria=1318
--and dbo.tb_PosiblesVacantes.localidad=21
ORDER BY dbo.vwrCategoriasDeTitulo.Descripcion,3
*/

--tercer version
/*
SELECT DISTINCT 
TOP 100 PERCENT --dbo.tb_AnexoTitulos.IdAnexoTitulo AS Id, 
                1 AS Id,dbo.tb_CargosGenericos.Descripcion AS Cargo, 
case  when tb_AnexoTitulos.Categoria = 1 then vwrAsignaturasGenericas2.Descripcion 
      when tb_AnexoTitulos.Categoria <>1 then dbo.vwrAsignaturasGenericas.Descripcion 
end AS AsignaturaGenerica , 
                Min(dbo.vwrCategoriasDeTitulo.Descripcion) AS Categoria, 
                Max(SUBSTRING(dbo.vwrTitulos.Descripcion, 10, 255) + ' - ' + CAST(dbo.vwrTitulos.ID AS varchar(8)))
                AS Titulo, 
                Max(vwrTitulos_2.Descripcion) AS Titulo2, 
                Max(vwrTitulos_1.Descripcion) AS Titulo1, 
case  when tb_AnexoTitulos.Categoria = 1 
then               SUBSTRING(vwrAsignaturasGenericas2.Descripcion, 9, 100) 
                   + ' - ' + CAST(vwrAsignaturasGenericas2.ID AS varchar(8)) 
when tb_AnexoTitulos.Categoria <>1 then
                    SUBSTRING(dbo.vwrAsignaturasGenericas.Descripcion, 9, 100) 
                    + ' - ' + CAST(dbo.vwrAsignaturasGenericas.ID AS varchar(8)) 
end
AS Asignatura, 
                 SUBSTRING(dbo.tb_CargosGenericos.Descripcion, 9, 100) 
                 + ' - ' + CAST(dbo.tb_CargosGenericos.idCargoGenerico AS varchar(8)) 
                 AS CargoSolo, 
                 dbo.tb_TitulosDelAgente.Agente, 
                 Min(dbo.tb_AnexoTitulos.Categoria) AS IdCategoria, 
                 dbo.vwrLocalidades.ID AS Localidad, dbo.vwrLocalidades.Descripcion, 
                 dbo.tb_PosiblesVacantes.Convocatoria, 
                 dbo.tb_CargosGenericos.idCargoGenerico, max(dbo.tb_AnexoTitulos.AsignaturaGenerica) AS idAsignatura
FROM         dbo.vwrTitulos 
INNER JOIN dbo.tb_AnexoTitulos ON dbo.vwrTitulos.ID = dbo.tb_AnexoTitulos.Titulo3 
INNER JOIN dbo.vwrCategoriasDeTitulo ON dbo.tb_AnexoTitulos.Categoria = dbo.vwrCategoriasDeTitulo.ID 
INNER JOIN dbo.vwrAsignaturasGenericas ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID 
left JOIN dbo.Tb_AsignatuasGenericasAfines ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.Tb_AsignatuasGenericasAfines.asignaturagenerica 
INNER JOIN dbo.vwrAsignaturasGenericas as vwrAsignaturasGenericas2 ON dbo.Tb_AsignatuasGenericasAfines.asignaturagenericaafin = vwrAsignaturasGenericas2.ID 
INNER JOIN dbo.tb_CargosGenericos ON dbo.tb_AnexoTitulos.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico 
INNER JOIN dbo.tb_TitulosDelAgente ON dbo.tb_AnexoTitulos.Titulo3 = dbo.tb_TitulosDelAgente.Titulo 
INNER JOIN dbo.tb_PosiblesVacantes ON dbo.tb_CargosGenericos.idCargoGenerico = dbo.tb_PosiblesVacantes.CargoGenerico AND dbo.vwrAsignaturasGenericas.ID = dbo.tb_PosiblesVacantes.AsignaturaGenerica 
INNER JOIN dbo.vwrLocalidades ON dbo.tb_PosiblesVacantes.Localidad = dbo.vwrLocalidades.ID 
LEFT OUTER JOIN dbo.vwrTitulos vwrTitulos_2 ON dbo.tb_AnexoTitulos.Titulo2 = vwrTitulos_2.ID 
LEFT OUTER JOIN dbo.vwrTitulos vwrTitulos_1 ON dbo.tb_AnexoTitulos.Titulo1 = vwrTitulos_1.ID 
LEFT OUTER JOIN dbo.tb_InscripcionesConvocatorias i ON i.Convocatoria = dbo.tb_PosiblesVacantes.Convocatoria AND i.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico AND i.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID AND i.Localidad = dbo.vwrLocalidades.ID AND i.Agente = dbo.tb_TitulosDelAgente.Agente
WHERE     (dbo.tb_AnexoTitulos.AsignaturaGenerica <> 0) AND (i.Agente IS NULL)  and vwrTitulos_2.Descripcion is null
--and dbo.tb_TitulosDelAgente.Agente=61576
--and dbo.tb_PosiblesVacantes.Convocatoria=1318
--and dbo.tb_PosiblesVacantes.localidad=21
--and dbo.tb_TitulosDelAgente.Agente=57811 
--and dbo.tb_PosiblesVacantes.Convocatoria=1318
--and dbo.tb_PosiblesVacantes.localidad=21
group by

--dbo.tb_AnexoTitulos.IdAnexoTitulo AS Id, 
                dbo.tb_CargosGenericos.Descripcion, 
case  when tb_AnexoTitulos.Categoria = 1 then vwrAsignaturasGenericas2.Descripcion 
      when tb_AnexoTitulos.Categoria <>1 then dbo.vwrAsignaturasGenericas.Descripcion 
end , 
                --dbo.vwrCategoriasDeTitulo.Descripcion AS Categoria, 
                --  SUBSTRING(dbo.vwrTitulos.Descripcion, 10, 255) + ' - ' + 
                --  CAST(dbo.vwrTitulos.ID AS varchar(8)) 
                --AS Titulo, 
                --vwrTitulos_2.Descripcion AS Titulo2, 
                --vwrTitulos_1.Descripcion AS Titulo1, 
case  when tb_AnexoTitulos.Categoria = 1 
then               SUBSTRING(vwrAsignaturasGenericas2.Descripcion, 9, 100) 
                   + ' - ' + CAST(vwrAsignaturasGenericas2.ID AS varchar(8)) 
when tb_AnexoTitulos.Categoria <>1 then
                    SUBSTRING(dbo.vwrAsignaturasGenericas.Descripcion, 9, 100) 
                    + ' - ' + CAST(dbo.vwrAsignaturasGenericas.ID AS varchar(8)) 
end, 
                 SUBSTRING(dbo.tb_CargosGenericos.Descripcion, 9, 100) 
                 + ' - ' + CAST(dbo.tb_CargosGenericos.idCargoGenerico AS varchar(8)), 
                 dbo.tb_TitulosDelAgente.Agente, 
                 --dbo.tb_AnexoTitulos.Categoria AS IdCategoria, 
                 dbo.vwrLocalidades.ID, dbo.vwrLocalidades.Descripcion, 
                 dbo.tb_PosiblesVacantes.Convocatoria, 
                 dbo.tb_CargosGenericos.idCargoGenerico 
                 --dbo.tb_AnexoTitulos.AsignaturaGenerica 


ORDER BY 4,3
*/


SELECT DISTINCT 
TOP 100 PERCENT --dbo.tb_AnexoTitulos.IdAnexoTitulo AS Id, 
                1 AS Id,dbo.tb_CargosGenericos.Descripcion AS Cargo, 
case  when tb_AnexoTitulos.Categoria = 1 then vwrAsignaturasGenericas2.Descripcion 
      when tb_AnexoTitulos.Categoria <>1 then dbo.vwrAsignaturasGenericas.Descripcion 
end AS AsignaturaGenerica , 
                Min(dbo.vwrCategoriasDeTitulo.Descripcion) AS Categoria, 
                Max(SUBSTRING(dbo.vwrTitulos.Descripcion, 10, 255) + ' - ' + CAST(dbo.vwrTitulos.ID AS varchar(8)))
                AS Titulo, 
                Max(vwrTitulos_2.Descripcion) AS Titulo2, 
                Max(vwrTitulos_1.Descripcion) AS Titulo1, 
case  when tb_AnexoTitulos.Categoria = 1 
then               SUBSTRING(vwrAsignaturasGenericas2.Descripcion, 9, 100) 
                   + ' - ' + CAST(vwrAsignaturasGenericas2.ID AS varchar(8)) 
when tb_AnexoTitulos.Categoria <>1 then
                    SUBSTRING(dbo.vwrAsignaturasGenericas.Descripcion, 9, 100) 
                    + ' - ' + CAST(dbo.vwrAsignaturasGenericas.ID AS varchar(8)) 
end
AS Asignatura, 
                 SUBSTRING(dbo.tb_CargosGenericos.Descripcion, 9, 100) 
                 + ' - ' + CAST(dbo.tb_CargosGenericos.idCargoGenerico AS varchar(8)) 
                 AS CargoSolo, 
                 dbo.tb_TitulosDelAgente.Agente, 
                 Min(dbo.tb_AnexoTitulos.Categoria) AS IdCategoria, 
                 dbo.vwrLocalidades.ID AS Localidad, dbo.vwrLocalidades.Descripcion, 
                 dbo.tb_PosiblesVacantes.Convocatoria, 
                 dbo.tb_CargosGenericos.idCargoGenerico, max(dbo.tb_AnexoTitulos.AsignaturaGenerica) AS idAsignatura
FROM         dbo.vwrTitulos 
INNER JOIN dbo.tb_AnexoTitulos ON dbo.vwrTitulos.ID = dbo.tb_AnexoTitulos.Titulo3 
INNER JOIN dbo.vwrCategoriasDeTitulo ON dbo.tb_AnexoTitulos.Categoria = dbo.vwrCategoriasDeTitulo.ID 
INNER JOIN dbo.vwrAsignaturasGenericas ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID 
LEFT JOIN tb_CargosAfines ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.tb_CargosAfines.idasiggenerica 
--left JOIN dbo.Tb_AsignatuasGenericasAfines ON dbo.tb_AnexoTitulos.AsignaturaGenerica = dbo.Tb_AsignatuasGenericasAfines.asignaturagenerica 
INNER JOIN dbo.vwrAsignaturasGenericas as vwrAsignaturasGenericas2 ON dbo.Tb_cargosafines.idasiggenericaafin = vwrAsignaturasGenericas2.ID 
INNER JOIN dbo.tb_CargosGenericos ON dbo.tb_AnexoTitulos.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico 
INNER JOIN dbo.tb_TitulosDelAgente ON dbo.tb_AnexoTitulos.Titulo3 = dbo.tb_TitulosDelAgente.Titulo 
INNER JOIN dbo.tb_PosiblesVacantes ON dbo.tb_CargosGenericos.idCargoGenerico = dbo.tb_PosiblesVacantes.CargoGenerico AND dbo.vwrAsignaturasGenericas.ID = dbo.tb_PosiblesVacantes.AsignaturaGenerica 
INNER JOIN dbo.vwrLocalidades ON dbo.tb_PosiblesVacantes.Localidad = dbo.vwrLocalidades.ID 
LEFT OUTER JOIN dbo.vwrTitulos vwrTitulos_2 ON dbo.tb_AnexoTitulos.Titulo2 = vwrTitulos_2.ID 
LEFT OUTER JOIN dbo.vwrTitulos vwrTitulos_1 ON dbo.tb_AnexoTitulos.Titulo1 = vwrTitulos_1.ID 
LEFT OUTER JOIN dbo.tb_InscripcionesConvocatorias i ON i.Convocatoria = dbo.tb_PosiblesVacantes.Convocatoria AND i.CargoGenerico = dbo.tb_CargosGenericos.idCargoGenerico AND (i.AsignaturaGenerica = dbo.vwrAsignaturasGenericas.ID  OR i.AsignaturaGenerica = dbo.Tb_cargosafines.idasiggenericaafin) AND i.Localidad = dbo.vwrLocalidades.ID AND i.Agente = dbo.tb_TitulosDelAgente.Agente
WHERE     (dbo.tb_AnexoTitulos.AsignaturaGenerica <> 0) AND (i.Agente IS NULL)  and vwrTitulos_2.Descripcion is null
--and dbo.tb_TitulosDelAgente.Agente=111107
--and dbo.tb_PosiblesVacantes.Convocatoria=1318
--and dbo.tb_PosiblesVacantes.localidad=21

group by

--dbo.tb_AnexoTitulos.IdAnexoTitulo AS Id, 
                dbo.tb_CargosGenericos.Descripcion, 
case  when tb_AnexoTitulos.Categoria = 1 then vwrAsignaturasGenericas2.Descripcion 
      when tb_AnexoTitulos.Categoria <>1 then dbo.vwrAsignaturasGenericas.Descripcion 
end , 
                --dbo.vwrCategoriasDeTitulo.Descripcion AS Categoria, 
                --  SUBSTRING(dbo.vwrTitulos.Descripcion, 10, 255) + ' - ' + 
                --  CAST(dbo.vwrTitulos.ID AS varchar(8)) 
                --AS Titulo, 
                --vwrTitulos_2.Descripcion AS Titulo2, 
                --vwrTitulos_1.Descripcion AS Titulo1, 
case  when tb_AnexoTitulos.Categoria = 1 
then               SUBSTRING(vwrAsignaturasGenericas2.Descripcion, 9, 100) 
                   + ' - ' + CAST(vwrAsignaturasGenericas2.ID AS varchar(8)) 
when tb_AnexoTitulos.Categoria <>1 then
                    SUBSTRING(dbo.vwrAsignaturasGenericas.Descripcion, 9, 100) 
                    + ' - ' + CAST(dbo.vwrAsignaturasGenericas.ID AS varchar(8)) 
end, 
                 SUBSTRING(dbo.tb_CargosGenericos.Descripcion, 9, 100) 
                 + ' - ' + CAST(dbo.tb_CargosGenericos.idCargoGenerico AS varchar(8)), 
                 dbo.tb_TitulosDelAgente.Agente, 
                 --dbo.tb_AnexoTitulos.Categoria AS IdCategoria, 
                 dbo.vwrLocalidades.ID, dbo.vwrLocalidades.Descripcion, 
                 dbo.tb_PosiblesVacantes.Convocatoria, 
                 dbo.tb_CargosGenericos.idCargoGenerico 
                 --dbo.tb_AnexoTitulos.AsignaturaGenerica 
ORDER BY 4,3

GO
GRANT SELECT ON  [dbo].[vwlEnQueMeInscribo] TO [Juntas]
GO
